package com.logic.landseaserver.persistence.write;

import java.util.HashMap;
import java.util.Map;

import com.logic.landseaserver.domain.BalanceSheetRecord;

public interface BalanceSheetRecordWriteMapper
{
    int deleteByPrimaryKey(Integer id);
    
    int insert(BalanceSheetRecord record);
    
    int insertSelective(BalanceSheetRecord record);
    
    int updateByPrimaryKeySelective(BalanceSheetRecord record);
    
    int updateByPrimaryKey(BalanceSheetRecord record);

    void updateStatusBySelective(Map<String, Object> editBalanceSheet);
    
    void deleteByContractId(Map<String, Object> paramMap);
    
    // 月结支付成功后，更新独立账单
    void updateMonthPaied(Map<String, Object> paramMap);
    
    /**
     * 
     * [简要描述]：更新退租独立账单</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-09-26)</br>
     *
     * @param paramMap
     *
     */
    void updateUnrentBillByContract(Map<String, Object> paramMap);

    void deleteDeposit(Map<String, Object> map);
    
    /**
     * 
     * [简要描述]：物理删除授权码相关记录</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-10-20)</br>
     *
     * @param paramMap
     *
     */
    void removeCoupon(Map<String, Object> paramMap);
    
    /**
     * 
     * [简要描述]：物理删除首期独立账单记录</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-12-06)</br>
     *
     * @param paramMap
     *
     */
    void removeFirstBillBalance(Map<String, Object> paramMap);
    
    /**
     * 
     * [简要描述]：物理删除预定账单记录</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2017-12-06)</br>
     *
     * @param paramMap
     *
     */
    void removeDepositBalance(Map<String, Object> paramMap);
    
    /**
     * 
     * [简要描述]：物理删除负数的定金用来平帐的独立账单</br>
     * [详细描述]：</br>
     * [作者]：Aaron(2018-03-06)</br>
     *
     * @param paramMap
     *
     */
    void removeNegativeDeposit(Map<String, Object> paramMap);

	void updateByBillNo(BalanceSheetRecord editProduceType);

    void updateMoneyByBillInfo(BalanceSheetRecord record);
}